<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>

</html>
<script>
    //一.变量不同类型之间的转换
    //显式转换：系统强制转换或者手动转换,将特定的类型进行转换。
    //Number( ) : 将括号里面的值转换成数字。如果不是数字，输出NaN(not a number不是一个数字)
    // console.log('123');//123
    // console.log(Number('123'));
    // console.log(Number('abc')); //NaN
    // console.log(Number(undefined)); //NaN  特殊 不存在
    // console.log(Number(null)); //0   特殊  空
    // console.log(Number(true)); //1
    // console.log(Number(false)); //0
    // console.log(Number('')); //0 是空隙
    // console.log(Number(' ')); //0  是空格 特殊

    //特殊：作者约定的，不适合前面描述的"比较的核心是数字"这句话。
    // console.log(undefined == null); //true
    // console.log(undefined === null); //false 值相等，类型不同。


    //String( ) : 将括号里面的值转换成字符串。
    // console.log(String(undefined));
    // console.log(String(null));
    // console.log(String(100));
    // console.log(String(true));
    // console.log(String(false));

    //Boolean() : 将括号里面的值转换成布尔值。
    //数字非零即真，字符串非空(空隙)即真，
    //0 ,'',undefined,null,NaN都是false.
    // console.log(Boolean(0)); //false
    console.log(Boolean('')); //false 
    console.log(Boolean(' ')); //true 
    // console.log(Boolean('你好')); //true

    console.log(Number('abc')); //NaN
    console.log(Boolean(Number('abc'))); //false
    console.log(typeof typeof Boolean(null)); //string
    console.log(typeof 'abc' === 'string'); //true
 

    // parseInt( )、parseFloat( )
    // parseInt( )将括号里面字符串的值转换成整数,从字符串的一开始逐个找字符串里面的数字，碰到非数字结束。
    // console.log(parseInt('3.14')); //3
    // console.log(parseInt('3.54')); //3
    // console.log(parseInt(3.54)); //3
    // console.log(parseInt('3abc')); //3
    // console.log(parseInt('323abc')); //323
    // console.log(parseInt('a123b')); //NaN
    // console.log(parseInt('2*3')); //2
    // console.log(parseInt('2*3.3')); //2

    // console.log(typeof parseInt('abc')); //number
    // console.log(typeof parseInt('3abc')); //number
    // console.log(typeof parseInt('abc') === typeof parseInt('3abc')); //true

    // parseFloat( )将括号里面字符串的值转换成小数(存在小数),小数位数大概15位左右。
    // console.log(parseFloat('3.1415abc')); //3.1415
    // console.log(parseFloat('a3.1415abc')); //NaN
    // console.log(parseInt('100px')); //100

    // toFixed(n) : 保留n位小数 - 银行家算法(了解一下)
    // console.log(3.1415926.toFixed(2)); //3.14
    // console.log(3.1415926.toFixed(4)); //3.1416



    //2.隐式转换：系统自动根据当前的符号进行转换。
    //+ - * /  %  ==
    // var a = '30';
    // var b = '5';
    // console.log(a + b); //305 拼接
    // console.log(+a + +b); //35 隐式转换
    // console.log(a - b); //25 隐式转换
    // console.log(a * b); //150 隐式转换
    // console.log(a / b); //6 隐式转换
    // console.log(a % b); //0 隐式转换

    // console.log(true == 1); //true  隐式转换
</script>